/* Oggetto DataSource. */

function DataSource (catalogURI) {

	this.publisher = catalogURI;
	var catalog = new CatalogDs (catalogURI);

	// Metodi pubblici

	// Invia come GET la queryString e ritorna l'errore o il reponse.
	// XXX la queryString deve essere gia' stata encodeURIComponentata.
	this.query = function (queryString, callbackWait, callbackOK, callbackError) {
		catalog.refresh (null,
				function () {
					var url = catalog.getQuery() + "?" + queryString;
					var am = new AjaxManager (url, callbackWait, callbackOK, callbackError);
					am.get();
				},
				null);
	}

	// Invia come POST l'xmlData e ritorna la risposta o l'errore.
	this.save = function (xmlScheda, callbackWait, callbackOK, callbackError) {
		catalog.refresh (null,
				function (req) {
					var url = catalog.getSalva ();
					var serializer = new XMLSerializer ();
					var am = new AjaxManager (url, callbackWait, callbackOK, callbackError);
					var scheda = serializer.serializeToString(xmlScheda);

					am.post ("scheda=" + scheda);
				},
				null);
	}
}
